The open nature of conventional computing environments allows easy observation and modification of executing code, enabling individuals to reverse engineer, tamper with, or hack software. To address this problem, various code obfuscation techniques endeavor to transform programs into forms difficult to understand and modify. However, there is no current obfuscation algorithm that is substantially secure and practical.
With the growing popularity of software and electronic media distribution and the increasing economic investments made therein, the importance of protection techniques is expected to grow. Therefore, there is a need for improved code obfuscation techniques that are effective against reverse engineering, tampering and hacking.